package com.chao.yyks.modular.problem.controller;

import com.alibaba.fastjson.JSONObject;
import com.chao.common.util.log.Inter;
import com.chao.common.util.reaction.PageList;
import com.chao.yyks.modular.problem.bean.EnProblem;
import com.chao.yyks.modular.problem.service.EnProblemImportService;
import com.chao.yyks.modular.problem.service.EnProblemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.Map;


/**
 * 题库Controller
 * chao
 * 2024-09-12
 */
@RestController
@RequestMapping("/enProblem")
public class EnProblemController {

	/**
	 * 题库Service
	 */
	@Autowired
	private EnProblemService enProblemService;

	/**
	 * 题库导入Service
	 */
	@Autowired
	private EnProblemImportService enProblemImportService;

	/**
	 * 新增题库
	 */
	@Inter("EPM_ADD_01")
	@RequestMapping(method = RequestMethod.POST, value = "insertEnProblem")
	public void insertEnProblem(@RequestBody EnProblem enProblem){
		enProblemService.insertEnProblem(enProblem);
	}

	/**
	 * 修改题库
	 */
	@Inter("EPM_EDT_01")
	@RequestMapping(method = RequestMethod.POST, value = "updateEnProblem")
	public void updateEnProblem(@RequestBody EnProblem enProblem){
		enProblemService.updateEnProblem(enProblem);
	}

	/**
	 * 删除题库
	 */
	@Inter("EPM_DEL_01")
	@RequestMapping(method = RequestMethod.POST, value = "deleteEnProblem")
	public void deleteEnProblem(@RequestBody EnProblem enProblem){
		enProblemService.deleteEnProblem(enProblem.getProblemId());
	}

	/**
	 * 查询题库详情
	 */
	@Inter("EPM_SEL_01")
	@RequestMapping(method = RequestMethod.GET, value = "selectEnProblemByProblemId")
	public EnProblem selectEnProblemByProblemId(String problemId){
		return enProblemService.selectEnProblemByProblemId(problemId);
	}

	/**
	 * 查询题库列表
	 */
	@Inter("EPM_SEL_02")
	@RequestMapping(method = RequestMethod.GET, value = "selectEnProblemByList")
	public PageList<EnProblem> selectEnProblemByList(@RequestParam Map<String,Object> map){
		return enProblemService.selectEnProblemByList(new JSONObject(map));
	}

	/**
	 * 分页查询题库列表
	 */
	@Inter("EPM_SEL_03")
	@RequestMapping(method = RequestMethod.GET, value = "selectEnProblemByPage")
	public PageList<EnProblem> selectEnProblemByPage(@RequestParam Map<String,Object> map){
		return enProblemService.selectEnProblemByPage(new JSONObject(map));
	}

	/**
	 * 导入问题
	 */
	@Inter("EPM_ADD_04")
	@RequestMapping(method = RequestMethod.POST, value = "importEnProblemTed")
	public JSONObject importEnProblemTed(@RequestParam("file") MultipartFile file){
//	public JSONObject importEnProblemTed(){
//		return enProblemImportService.importEnProblemTed(null);
		return enProblemImportService.importEnProblemTed(file);
	}

	/**
	 * 导入问题
	 */
	@Inter("EPM_ADD_02")
	@RequestMapping(method = RequestMethod.POST, value = "importEnProblem")
	public JSONObject importEnProblem(@RequestParam("file") MultipartFile file,@RequestParam("problemDate") String problemDate){
		return enProblemImportService.importEnProblem(file,problemDate);
	}

//	/**
//	 * 导入问题
//	 */
//	@Inter("EPM_ADD_02")
//	@RequestMapping(method = RequestMethod.GET, value = "importEnProblem")
//	public JSONObject importEnProblem(){
//		return enProblemImportService.importEnProblem(null,"2024-10-13");
//	}

	/**
	 * word文档解析 转表格
	 */
	@Inter("EPM_ADD_03")
	@RequestMapping(method = RequestMethod.POST, value = "wordToExl")
	public void wordToExl(HttpServletResponse response, @RequestParam("file") MultipartFile file){
		enProblemImportService.wordToExl(response,file);
	}


	/**
	 * 词汇练习列表
	 */
	@Inter("EPM_SEL_05")
	@RequestMapping(method = RequestMethod.GET, value = "selectEnProblemCHList")
	public PageList<JSONObject> selectEnProblemCHList(@RequestParam Map<String,Object> map){
		return enProblemService.selectEnProblemCHList(new JSONObject(map));
	}

	/**
	 * 词汇练习
	 */
	@Inter("EPM_SEL_04")
	@RequestMapping(method = RequestMethod.GET, value = "selectEnProblemCH")
	public JSONObject selectEnProblemCH(@RequestParam Map<String,Object> map){
		return enProblemService.selectEnProblemCH(new JSONObject(map));
	}

}